Applied Computing - Spring 2024

Undergraduate and graduate course, DePaul University, School of Computing (SoC), 2024

Course Instructor.

Course Description

CSC 299 stresses student initiative in investigating a particular computing application. In the process, students learn new tools (including languages and APIs) methodologies, study algorithms/code examples/formalisms used in that particular computing area, work on projects, and apply them to develop operating systems. The topic of study in this section of CSC 299 is Hardware Projects for the Raspberry Pi & the topic of CSE 299 is Hardware Projects. In this course, the students will apply problem-solving and programming skills toward building cyber-physical systems using the Raspberry Pi hardware platform. The course will cover basic electronics and the Python API for managing hardware devices (including communication interfaces), interfacing with digital and analog inputs (sensors), controlling motors (actuators), and using output devices (e.g., displays and buzzers). Throughout the course and final project, students will work in groups to build basic cyber-physical systems (e.g., controlling LEDs and motors, communicating over the Internet, monitoring the surroundings via various sensors) to moderately sophisticated ones (e.g., remotely piloting a robot rover over the Internet).

Course Objectives

In this course, students will:

  • Configure and secure Raspberry Pi for remote operation
  • Work and be familiar with the Unix/Linux operating systems to perform system configurations, Python program development, and execution
  • Use, be familiar with, and build basic electronic circuits
  • Use Raspberry Pi and the Python API to interface digital/analog inputs (sensors), control motors, and other hardware (actuators), and use a variety of displays (output devices).
  • Communicate with hardware devices over the Internet
  • Build moderately sophisticated cyber-physical systems using the Raspberry Pi.
  • Programming Arduino to interact with sensors and actuators.
  • Collecting sensor data and training machine learning models and deploying them on an embedded device for real-time decision-making.
  • Learn about sensing modalities and actuators such as thermal cameras, RGB cameras, IMUs (inertial measurement units), microphones, Mosfets, gas sensors, DC motors, solenoid valves, vibrating motors, motor drivers, pulse sensors, ECG sensors, and soil moisture.

Prerequisites

Students must also have taken CSC 242 or CSC 243 or an equivalent introduction to programming course. Also, students must have passed these courses or have been waived out of them. More to the point, students must already know how to program in Python or have sufficient programming experience to learn Python quickly. This is an in-person class, and the participation is compulsory. You will need to bring your Raspberry Pi kit and laptop to the class.

Important Notes

  • This is a hands-on class. You are expected to take part in in-person sessions. The health safety guidelines and protocols will be followed.
  • Labs, Homework (lab reports), quizzes, and final projects are individual activities. Final projects can be either group or personal activities.
  • Groups will have up to two members. More information will be conveyed at mid-quarter after observing the class dynamics.
  • This class follows the flipped classroom concepts where the students are expected to complete the reading assignments before attempting to complete the labs.
  • Please make sure to use the components in the kit given to you with care.

Course Format

The course provides the material you will need to understand the fundamental concepts covered during the course, including:

  • Follow-up lectures (before the class begins)
  • Weekly lab for hands-on programming and problem-solving (7 labs in total).
  • Six weekly quizzes and seven reports based on the lab assignments
  • Resources such as videos, notes, and code files via D2L
  • Self-assessment resources on D2L, including lecture questions/answers and unit quizzes/solutions, to assess your progress and understanding.

Text Book

Raspberry Pi Cookbook, 4th Edition by Simon Monk, December 2022, O’Reilly Media, ISBN: 9781098130923, which can be accessed from DePaul Login.

Required Components

Students are required to purchase the following items:

Grading

The course grade is apportioned as follows:

  • 20% for quizzes
  • 40% for lab assignments and reports
  • 40% for final project

Labs

Homework (fillable DOCX forms; no hard copies will be provided in class) will be available on D2L and consist of reading online material to further understand the concepts covered in the course. You will need to complete and submit (via D2L) the weekly assignment before the next class meeting. The template for each of the lab reports will be available on D2L. After completing the lab reports, print them as PDFs and upload them on D2L.

Quiz

Based on the prior lab and the assignment, a short quiz will be given in class. Quizzes should be completed individually by the next lab meeting.

Final Project

During the last several weeks of the course, you will be working on a group project, which you will present in week 11 of the class. It will be a simple application you will implement using a Raspberry Pi board and other electronic components. The project will be approved based on your proposal. A final project write-up will be due during exam week. Instructions about the final project will be available on D2L.

Class Schedule

WeekTopic & Experiments
Week 1Course Introduction and Raspberry Pi Setup. Learn how to program the Raspberry Pi, Send emails from Raspberry Pi, Display sensor values on Raspberry Pi, Use the IFTTT framework to send notifications, and display sensor data on the web.
Week 2Arduino Setup. Learn how to program Arduino (Seeed Studio Xiao nRF52840 Sense and Xiao Expansion board) and interact with its onboard electronics including, accelerometer, gyroscope, temperature sensor, screen, buzzer, RTC, and SD card.
Week 3Understand Raspberry Pi pinout, Program general-purpose digital output, Build simple circuits to test the programs, Learn pulse width modulation (PWM), and Build user graphical user interfaces.
Week 4Programming general-purpose digital input (detect switch interactions, learn internal/external Pull UP/DOWN resistors, software polling vs. hardware interrupts, use rotary encoders, motion detectors, interact with keyboards and mouse) and Interface Raspberry Pi Camera (using a Raspberry Pi Camera Module for Computer Vision, face and motion detection using Computer Vision).
Week 5Building an intelligent mobile physical activity tracker based on the nRF52840 development board and IMU for all-day-long physical activity recognition.
Week 6Building a smart nose based on a Multichannel Gas Sensor capable of measuring compounds including CO, NO2, C2H5CH, and VOC.
Week 7Building an intelligent home security system capable of detecting humans and recognizing familiar faces based on RGB and thermal cameras.
Week 8Building a smart remote health monitoring system based on continuous ECG and PPG readings.
Week 9Actuators (Control servo motors, Control the speed of DC motors, Control direction of DC motors, Control unipolar stepper motors.